Transferatu - JA 2 Savegame editor
Copyright 2006  Callahan (rouletters@aol.com)

This program is free software; you can redistribute it and/or modify it under the terms of the 
GNU General Public License as published by the Free Software Foundation; either version 2 of 
the License, or (at your option) any later version. 

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; 
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
See the GNU General Public License for more details. 

You should have received a copy of the GNU General Public License along with this program; 
if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
MA 02110, USA 

Auf Deutsch: 

Dieses Programm ist freie Software. Sie knnen es unter den Bedingungen der GNU General Public 
License, wie von der Free Software Foundation verffentlicht, weitergeben und/oder modifizieren, 
entweder gem Version 2 der Lizenz oder (nach Ihrer Option) jeder spteren Version. 

Die Verffentlichung dieses Programms erfolgt in der Hoffnung, da es Ihnen von Nutzen sein 
wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der MARKTREIFE oder der 
VERWENDBARKEIT FR EINEN BESTIMMTEN ZWECK. Details finden Sie in der GNU General Public License. 

Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten 
haben. Falls nicht, schreiben Sie an die Free Software Foundation, Inc., 51 Franklin St, Fifth 
Floor, Boston, MA 02110, USA. 

---------------------------

Beschreibung der Funktionen des JA 2 Editors Transferatu von Callahan.

Vorwort

Da sich die verschiedenen JA 2 Versionen sehr hnlich sind, ist es wahrscheinlich, dass
viele Funktionen auch mit Datenstzen kompatibel sind, welche fr andere Versionen eingestellt
wurden.
Es ist z.B. oftmals mglich, mehrere AE's und Kontostandsnderungen in Unfinished Buisness
unter Verwendung der 1.xx Daten zu erwirken.

Eine Ausnahme ist v 1.13, welche aufgrund von grsseren Saves nicht voll abwrts kompatibel ist
(mal abgesehen von den 5000 Itemslots fr BR).

Es knnen jederzeit neue Datenstze eingegeben werden, um den Editor an neuere Versionen
anzupassen.
Whlen Sie hierzu eine leere Datensatzposition und ndern sie dann dieses Setting.
Dadurch knnen Sie dann die neuen Werte eingeben.

Einstellung Nr. 11 beinhaltet die Daten fr die Funktion Nr. 17. Sie sollte nicht anderweitig
verwendet werden, da diese Funktion dann nicht mehr ordnungsgem Funktioniert.



Es sollte eine JA2PATH Datei beiliegen, welche Sie direkt auf die Festplatte 
(nicht in einen Ordner) legen mssen.
In dieser sind bereits einige komplette Datenstze fr Mods gespeichert.
Das Programm fragt im ersten Schritt, auf welcher Platte diese Datei zu finden ist.

Danach haben Sie die Mglichkeit, andere Einstellungen fr die verschiedenen JA 2 Versionen
auszuwhlen, die aktuell gewhlte zu verndern, oder diese zu verwenden.


Wenn Sie das Programm aus dem jeweiligen Savegame Ordner heraus ausfhren, so mssen Sie als Pfad
nur den DOS Namen des Savegames angeben.
Standardmig ist das Quicksave (Quicks~1.sav) die Voreinstellung, da dieses bei deutschen wie
englischen Versionen den selben Namen trgt.

Wollen Sie standardmig ein anderes Save bearbeiten, so mssen Sie die jeweilige Einstellung
verndern, und den DOS Namen des gewnschten Saves angeben.
Dies knnen Sie mit der Funktion "Change settings of..." erledigen.

Jede Einstellung speichert ihren eigenen Pfad. Somit ist es mglich, verschiedene Versionen zu 
bearbeiten, ohne jedesmal den Pfad ndern zu mssen.


Wenn Sie das Programm nicht vom Savegame Ordner heraus ausfhren, mssen Sie den vollstndigen
Pfad zum Savegame angeben.


Dies knnen Sie mit der Funktion "Change settings of..." erledigen. Geben Sie die Suchparameter
so ein, wie sie derzeit sind, danach Ihren Savepfad. Alle weiteren Fragen zu Fixpunktnderungen
mssen Sie verneinen.
Nach der Befragung befinden Sie sich wieder im Datensatz Management.

Bei der Pfadeingabe ist zu beachten, dass nur 8 Zeichen pro Namen angegeben werden knnen.
Den MS-DOS Namen eines Ordners / Datei findet man bei "Eigenschaften" .

Bsp: D:\jag2us\savedg~1\savega~1.sav
Der Pfad kann maximal 100 Zeichen lang sein. Das  ~  hat den ASCII Wert 126, kann also mit
ALT + 1; 2; 6; erzeugt werden.

Da ich den Code mitliefere, knnte es sein, dass diese Beschrnkung durch die Umwandlung in C++
wegfllt. Der Coder, der die Umwandlung durchfhrt, mge darauf hinweisen, dass DOS Namen 
nicht mehr ntig sind.

Weiterhin ist zu beachten, das nur Zahlenwerte von 0 bis 255 verarbeitet werden knnen.
Einzige Ausnahme ist der Item Index von BR Items, da hier mehr als 255 zur Auswahl stehen.
Negative Zahlen knnen, bis auf wenige Ausnahmen, auch nicht verarbeitet werden.

Das Programm gibt den Byteabstand zum ersten Fixpunkt an. Dadurch kann man die Startposition an
ein laufendes Spiel anpassen, um die Suchzeit zu verkrzen.
Es empfielt sich, einen Abstand von 10.000 bis 50.000 Byte einzuhalten, um bei Schwankungen
den Fixpunkt nicht zu verpassen.
Natrlich muss man dann den Startpunkt zurcksetzen, wenn man ein neues Spiel beginnt.

Beim Einsatz von Milizen in Feindsektoren ist zu beachten, dass es meist nur 32 Startpositionen 
gibt, auf welche zuerst die Milizen gesetzt werden. Wenn nicht alle Feinde plaziert werden 
knnen, so wird nach dem Sieg noch das Feindsymbol im Kartenbildschirm gezeigt.
In diesem Fall muss man den Sektor manuell verlassen und wieder betreten, dann kommt es erneut 
zum Gefecht mit dem Rest.
Das Editieren von Milizen hat nur Effekt, wenn man den Sektor betritt, bzw. kein Kampf im Sektor
stattfindet.

Bei Sektoren, aus denen Miliz entfernt wurde, kommt es manchmal zum PC Kampf, wenn dieser danach
vom Feind erobert wurde und von Ihnen betreten wird.
Speichern und Laden kurz vor Betreten hat dies bei mir immer behoben.

Wenn Sie mehr als die normalerweise hchstmgliche Anzahl an Milizen verwenden, so strzt das 
Spiel fast ausnahmslos ab, wenn es zu einem PC Kampf kommt.


Funktionen:

0. Forget about it.

Beendet das Programm.


1. Remove all militia and replace

Entfernt alle Milizen und gibt die Anzahl der entfernten Einheiten fr jeden Miliztyp an.
Im Anschluss muss ein Sektor angegeben werden, in dem neue Milizen plaziert werden.
Damit kann man alle Krfte der Karte in einem Sektor bndeln.

2. Remove all militia

Entfernt alle Milizen auf der Karte und gibt die Anzahl der entfernten Milizen an.

3. Remove sector militia

Wie 2. , nur dass hierbei nur der angegebene Sektor gerumt wird.

4. Remove sector militia and replace

Wie 1. , nur dass hierbei lediglich der angegebene Sektor gerumt wird.
Im Anschluss kann dann in einem anderen Sektor Miliz plaziert werden.

5. Place militia

Im angegebenen Sektor knnen Milizen plaziert werden.
Die Zahlen werden zu den rtlichen Milizen addiert.
Die Anzahl jedes Typs darf 255 nicht berschreiten.
Hier kann man durch negative Zahlen den Bestand reduzieren, es darf jedoch kein negativer 
Bestand entstehen.

6. Place enemies

Im angegebenen Sektor knnen Feinde plaziert werden.
Die Zahlen werden zu den rtlichen Feinden addiert.
Die Anzahl jedes Typs darf 255 nicht berschreiten.
Hier kann man durch negative Zahlen den Bestand reduzieren, es darf jedoch kein negativer 
Bestand entstehen.
Falls die Map es erlaubt, knnen Sie auch die Anzahl der Bloodcats eingeben.
Das System erkennt automatisch die maximal mgliche Anzahl fr die jeweilige Map und gibt diese 
an.

7. Remove sector enemies

Entfernt alle feindlichen Truppen aus dem angegebenen Sektor.

8. Transfer militias

Nach Eingabe der Quell- und Zielsektoren knnen Milizen transferiert werden.
Hier ist die Eingabe negativer Zahlen mglich, solange der Bestand eines Milizentyps weder
negativ, noch grsser 255 wird.

9. Edit mine monsters

Nach Angabe des Sektors kann die Anzahl der Monster in diesem Sektor eingegeben werden.
Die Monster knnen allerdings nur erscheinen, wenn die Map auch ber Monster-Startpositionen 
verfgt.
Ausserdem hat das Spiel die Angewohnheit, bei normalerweise nicht infizierten Minen ein Monster
weniger zu erzeugen, als eingegeben.

Ferner wird der Editor unter Verwendung der Cave Werte die "Key" Maps so anpassen, dass man ins 
Nest der Knigin vordringen kann. Dieser Durchgang wird normalerweise nur dann frei, wenn das 
Spiel in dieser Mine Monster plaziert. 

Wenn die Cave Werte nicht stimmen, wird die Map zu einer Wste, dann hilft nur noch laden.
Das vernderte Save ist dann Schrott.
Dies geschieht, weil mein Editor dem Spiel befiehlt, die alternative Map mit dem Durchgang
zu laden. Gibt es keine fr diese Koordinaten, bekommt das Spiel damit ein Problem.

Derzeit werden im Spiel 4 solche Maps untersttzt, mein Editor hat jedoch Speicherpltze fr
7 Cave Maps. Falls es mal mehr Minen mit Monstermglichkeit gibt.

10. Edit sublevel enemies

Hier kann man die Anzahl der Feinde in unterirdischen Sektoren angeben.
Diese knnen allerdings nur erscheinen, wenn die Map ber Gegner-Startpositionen verfgt.

11. Reset AE Byte

Diese Funktion killt das AE Byte und erlaubt somit die Kreation eines weiteren AE.
Da die Funktion an den Kontostand gebunden ist, geht dies nur vor dem Editieren des selbigen.

12. Edit Bobby Rays stock

Hier kann man 2 Felder im Angebot von BR verndern.
1 mal Neuware und 1 mal Gebrauchtes.
Bei der Angabe der Item Nummer kann man 255 berschreiten.

13. Edit money

Hier kann der gewnschte Kontostand angegeben werden.
Falls das AE Byte noch intakt ist, wird die Anzeige im Kartenbildschirm ebenfalls verndert. Wenn
nicht, dann bleibt die Anzeige wie sie ist.
Der Kontostand ist trotzdem verndert.
Durch den Vorgang werden 2 - 3 der Fixpunkte verndert, wodurch keine 4-fach bereinstimmung mehr
mglich ist. Daher muss man das Spiel laden und erneut abspeichern, um eine weitere Kontostands-
nderung durchzufhren.

14. Place surface monsters

Hiermit kann man Monster in Oberflchensektoren plazieren. Zumindest in der Theorie, denn da
keine meiner Oberflchenmaps Monster-Startpunkte hat, konnte ich dies nicht testen.

15. Eliminate automatic death

Setzt den Wert von "Bereits Verstorbene" auf 10.
Daher nimmt der Computer an, er habe bereits ausreichend Leute gekillt.
Da dieser Wert am Ende der Savedatei liegt, ist es fr den Editor am leichtesten, (und am 
zuverlssigsten) wenn man dies frh im Spiel macht.



16. Activate all cities and edit loyality

Setzt den Wert aller Stdte so, als ob man schon einen Sektor befreit htte.
Dadurch wchst in diesen Stdten dann die Loyalitt durch Siege anderswo, was ansonsten nicht 
geschehen wrde.
Danach kann man die Loyalitt einer Stadt verndern.
Werte von 0 - 255 knnen verarbeitet werden.

Da im Spielverlauf diese Fixpunkte verndert werden, kann es vorkommen, dass diese Funktion
ihre Fixpunkte nicht mehr findet, wenn das Spiel zu weit fortgeschritten ist.


17. Random placement of enemies / Paratroopers

Diese Funtion whlt nach dem Zufallsprinzip einen Sektor aus, und plaziert dort eine zufllige
Anzahl an Feinden und Bloodcats.
Nach dem Starten der Funktion erscheint eine Abfrage, die Sie mit ENTER besttigen mssen.
Dies dient ausschliesslich dazu, dass die Zufallszahlen nicht miteinander in Beziehung stehen.
(Durch die variable Zeit Ihrer Reaktion)

Sollte der ermittelte Sektor zu keinem benachbarten Sektor einen Zugang haben, so mssen Sie
diese Besttigung nochmals geben, bis ein gltiger Sektor ermittelt wurde.

Einstellung Nr. 11 beinhaltet die Funktionsparameter, welche fr Wahrscheinlichkeit und Anzahl
von Feinden stehen.
Sie knnen diese an Ihre Bedrfnisse anpassen.

Citibyte - ist der tatschliche maximale Wert, welcher generiert wird.
Autobyte - sind die Maximalen Soldaten eines Gegnertyps.


Mit hilfe dieser beiden Werte kann man die Wahrscheinlichkeit eines Erscheinens, sowie die
maximale Gegnerzahl bestimmen.
Wenn der tatschliche Wert ber dem Maximalwert liegt, gibt es keine Feinde dieses Typs.

Bsp.

Citibyte1 = 20 ; Autobyte1 = 10

Maximale Gegner = 10 / Wahrscheinlichkeit des Erscheinens 50 %

Dies ist die Voreinstellung

-------------

Citibyte1 = 15 ; Autobyte1 = 10

Maximale Gegner = 10 / Wahrscheinlichkeit des Erscheinens 75 %



Die Paare von Citybyte1 und Autobyte1 bis Citybyte3 und Autobyte3 stehen fr feindliche
Admins, Regulre und schliesslich Elite.


--Bloodcats--

Citybyte4 regelt allein die Bloodcats, da die Maximalnummer vom Sektor selbst bestimmt wird.

In diesem Fall ist Citybyte4 ein Multiplikator.

Bsp.

Sektormaximum 7 Bloodcats
Citybyte4 = 1 -> tatschlicher generierter Wert maximal 7 

Wahrscheinlichkeit des Erscheinens 100 % von 1 bis 7 Stck


--------
Sektormaximum 7 Bloodcats
Citybyte4 = 2 -> tatschlicher generierter Wert maximal 14 

Wahrscheinlichkeit des Erscheinens 50 % von 1 bis 7 Stck

Dies ist die Voreinstellung


18 - Change sector travel time

Hiermit kann man die Ausreisezeiten von Sektoren verndern. Eine Liste der bekannten Werte wird
angezeigt.
Werte, welche sie nicht verndern wollen, mssen Sie so wie diese angegeben werden eintippen.

Dies ist recht ntzlich, wenn man Strassenverlufe bauen will. Allerdings muss man beachten,
dass man auch den entsprechenden Gegenwert des Nachbarsektors ndert, sonst hat man eine 
Einbahnstrasse.

Dies funktioniert auch mit UB, wenn man die east und south time Werte auf 12 setzt.
Falls A1 schon ein custom Sektor ist, so sind die Reisezeiten auf 1.44 H = 2 / 1.29 H = 1
und 5 min = 0 zu setzen.

19 - Manipulate items

Diese Funktion liest bis zu 4 Items aus dem ersten Sektor in dem Items liegen. Der Editor liest
hierbei von A1 ber A 16 zu B 1; von B1 ber B 16 zu C 1 usw.

Sie knnen ber eine Auswahl die Eigenschaften eines bestimmten Items ndern.
Typ, Zustand, Gewicht, Anbringsel und deren Zustand sowie das Lschen der Fingerabdrcke stehen
zur Auswahl.
Whlen Sie Gegenstand 0, so wird die Funktion beendet.

Bei nderungen, die das Gewicht betreffen, sollten Sie daran denken, dass das Gewicht neu
ermittelt wird, wenn Sie Items zusammenlegen (wie z.B. volle Magazine) oder Anbringsel abnehmen
oder anfgen.

Der Typ eines Gegenstandes wird als dessen Index im Spiel angezeigt. Da fast jeder Mod eine
andere Itemlist besitzt, kann ich keine Listen mitreichen. 
Sie knnen aber mit hilfe der Funktion recht schnell eine eigene Liste erstellen. 
Indem Sie den 4 Gegenstnden unterschiedliche Zustnde zuweisen, knnen Sie nach der 
Vernderung des Typs schnell ermitteln, welche nummer welches Item darstellt.

Diese Funktion sollte auch in UB klappen, sofern die A1 Fixpunkte richtig ermittelt wurden.

Schlusswort

Die Parameter fr das Suchen der Fixpunkte knnen an den Spielverlauf angepasst werden.
Das normale Save hat beim Start und vor dem Anwerben von Sldnern etwa 490.000 Byte,

Bei einem 200 Tage Spiel knnen es um die 1.960.000 Byte sein. Daher kann es vorkommen, dass 
die default Parameter zu gering werden, oder das Suchen der Werte dauert lnger.

Wenn der Startwert zu hoch ist, wird die gesuchte Position berlesen und die Funktion des 
Editors begrenzt.

Durch das Verndern der Suchparameter drfte kein Schaden entstehen.

Dieser Editor passt sich an die stndig wechselnden Positionen der Werte im Save an.
Da das gewhnliche JA 2 Save ein wenig instabil ist, knnte es vorkommen, dass der Editor 
versagt und falsche Werte ndert, wodurch das Save zerstrt wird.
Ich habe mein Mglichstes getan, um den Editor so zuverlssig zu programmieren, wie es geht. 
Selbst nach einer Vielzahl von Tests trat nie eine Fehlfunktion auf.
Trotzdem muss ich der Form halber betonen, dass Sie das Programm auf eigene Gefahr nutzen.


Datenstze - fr die neugierigen Detailfanatiker.
Wenn nicht anders angegeben, sollte der Standard-Datensatz auf den Mod passen.

Datensatz Standard


setname : wurscht
startpos : 106.000
scanrange :300.000
savepath : Quicks~1.sav
easttime : 2
southtime : 2
checkbyte10 : 10

citybyte1 : 255
citybyte2 : 201
citybyte3 : 154
citybyte4 : 59

autodeath : 263
autobyte1 : 0
autobyte2 : 95
autobyte3 : 55 
autobyte4 : 45 
autobyte5 : 0 

cave1a : 5
cave1b : 13
cave1c : 1

cave2a : 8
cave2b : 9
cave2c : 1

cave3a : 10
cave3b : 14
cave3c : 1

cave4a : 8
cave4b : 4
cave4c : 2

cave5a 0
cave5b 0
cave5c 0

cave6a 0
cave6b 0
cave6c 0

cave7a 0
cave7b 0
cave7c 0
startautokill : 350.000

lastused : 1
brdist : 2808

*******************************
Datensatz V 1.13 nderungen

startpos : 217.000
startautokill : 1.850.000

brdist : 40.008

*********************
Urban Chaos nderungen


easttime : 0
southtime : 0

cave1a : 0
cave1b : 0
cave1c : 0

cave2a : 0
cave2b : 0
cave2c : 0

cave3a : 0
cave3b : 0
cave3c : 0

cave4a : 0
cave4b : 0
cave4c : 0

*******************
Zuxxez WF 6 nderungen



easttime : 0
southtime : 0

autobyte1 : 0
autobyte2 : 95
autobyte3 : 100 
autobyte4 : 0 
autobyte5 : 0 

